package com.cxx.food.dao;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.cxx.food.dto.*;
import com.cxx.food.vo.FoodQueryVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface FoodDao {
    RecipeDto queryRecipeById(@Param("id") Long id);

    List<SummaryDto> queryRecipeByUser(@Param("id") Long id);

    List<SummaryDto> queryRecipeUserFavourite(@Param("user") String user);

    IPage<SummaryDto> querySummaryByPage(IPage<SummaryDto> page,
                                         @Param("query") FoodQueryVo foodQueryVo);

    List<SummaryDto> queryRecipeSummary(@Param("query") FoodQueryVo foodQueryVo,
                                        @Param("user") String user);

    List<RecordDto> queryRecordById(@Param("id") Long id);

    List<RecordDto> queryRecord(@Param("startDate") String startDate,
                                @Param("endDate") String endDate,
                                @Param("user") String user);

    StatsDto queryStats(@Param("user") String user);

    List<StatsChartDto> queryRecordStats(@Param("user") String user);

    List<StatsChartDto> queryCategoryStats(@Param("user") String user);

    List<StatsChartDto> queryRankStats(@Param("user") String user);

    List<String> queryCategory(@Param("user") String user);

    void insertMaterial(@Param("foodId") Long foodId,
                        @Param("list") List<MaterialDto> list);

    void insertStep(@Param("foodId") Long foodId,
                    @Param("list") List<StepDto> list);

}
